The Integration Build is used by the integrating developer (or integrator) to incorporate the most recently completed development
tasks into a single, stable, consistent and correct result. The result of a successful integration build is also
what is used during a Workspace Update to synchronize the state of an in-progress development task with the latest
stable state of the codeline.
An integration build is preferably a full build (if time and bandwidth allows) whose results visibly
impact the progress and coordination of the entire development team and all the active development tasks at that time.
The frequency of an integration build may be as often as one per development task (at the end of each task) or may be
every few tasks (or even daily/nightly). In some cases, there may be two "flavors" of integration builds: one that is
done after every development task and does only an incremental build (and possibly runs only a subset of tests), and
one that runs daily or nightly and does a full build and runs a more complete set of tests. In either case, the purpose
of the integration build is to centrally coordinate and synchronize all ongoing work in small bits and pieces to avoid
"big bang integration" at the end of a release/iteration, and to provide a regular rhythm for the development team to
tackle integration issues early and aggressively, one small piece at a time.
|